#include <head.h>

int main(int argc,const char *argv[])
{
    int fd = open("hello.txt",O_RDWR | O_CREAT,0666); //读写锁
    int fd_T = open("T.txt",O_RDWR | O_CREAT,0666); //进程通讯用 --> 管道

    char buf[32]= "A";//写入的内容

    int i=10;
    int T_num=0;

    //从文件中 读取 文件坐标 另一个进程写入s

    //1.上锁
    flock(fd,LOCK_EX);
    //2.通讯 获取 位置信息
    read(fd_T,&T_num,sizeof(int));
    //移动光标
    lseek(fd,T_num,SEEK_SET);
    //4.开始写入
    while(i--)
    {
        sleep(1);
        write(fd,buf,1);
    }
    //5.获取光标
    T_num = lseek(fd,0,SEEK_CUR);//获取当前文件指针坐标
    //6.将光标位置 写入到通讯文件中
    lseek(fd_T,0,SEEK_SET);//移动到开始 覆盖写数据
    write(fd_T,&T_num,sizeof(int));
    //解锁
    flock(fd,LOCK_UN);

    close(fd);
    close(fd_T);
    return 0;
}